﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using XRpgLibrary.CharacterClasses;
using Microsoft.Xna.Framework;

namespace XRpgLibrary.ScriptClasses
{
    /// <summary>
    /// This is the universal signature for the game event handler.
    /// 
    /// E.g.: the player runs into an NPC. self is the player, 
    /// trigger is the NPC.
    /// 
    /// E.g.: NPC runs into a wall during movement. self is the 
    /// NPC, trigger is the wall rectangle
    /// 
    /// E.g.: player enters a level, and NPC fires MapEnter event. 
    /// self is the NPC, trigger is the map that was entered
    /// 
    /// </summary>
    /// <param name="self">The character that's doing the event</param>
    /// <param name="trigger">The object, if any, that triggered the event</param>
    /// <param name="context">Contains references to the game, world, and engine</param>
    /// <param name="gameTime">gameTime from the loop</param>
    public delegate void GameEventHandler(Character self, object trigger, ScriptContext context, GameTime gameTime);
}
